#ifndef __BSP_LED_H
#define __BSP_LED_H

#include "stm32f10x.h"
/*定义LED_BLU的GPIO端口*/
#define LED_BLU_GPIO_PIN   GPIO_Pin_13             /*GPIO引脚*/
#define LED_BLU_GPIO_PORT  GPIOC                   /*GPIO端口*/
#define LED_BLU_GPIO_CLK   RCC_APB2Periph_GPIOC    /*GPIO时钟*/

/*定义LED_RED的GPIO端口*/
#define LED_RED_GPIO_PIN   GPIO_Pin_15             /*GPIO引脚*/
#define LED_RED_GPIO_PORT  GPIOC                   /*GPIO端口*/
#define LED_RED_GPIO_CLK   RCC_APB2Periph_GPIOC    /*GPIO时钟*/

/*定义LED_GRE的GPIO端口*/
#define LED_GRE_GPIO_PIN   GPIO_Pin_14             /*GPIO引脚*/
#define LED_GRE_GPIO_PORT  GPIOC                   /*GPIO端口*/
#define LED_GRE_GPIO_CLK   RCC_APB2Periph_GPIOC    /*GPIO时钟*/

/*定义LED_WHI的GPIO端口*/
#define LED_WHI_GPIO_PIN   GPIO_Pin_6              /*GPIO引脚*/
#define LED_WHI_GPIO_PORT  GPIOB                   /*GPIO端口*/
#define LED_WHI_GPIO_CLK   RCC_APB2Periph_GPIOB    /*GPIO时钟*/

/*宏定义函数，定义LED_BLU的亮灭*/
#define LED_BLU_ON() GPIO_ResetBits(LED_BLU_GPIO_PORT,LED_BLU_GPIO_PIN)
#define LED_BLU_OFF() GPIO_SetBits(LED_BLU_GPIO_PORT,LED_BLU_GPIO_PIN)

/*宏定义函数，定义LED_RED的亮灭*/
#define LED_RED_OFF() GPIO_ResetBits(LED_RED_GPIO_PORT,LED_RED_GPIO_PIN)
#define LED_RED_ON() GPIO_SetBits(LED_RED_GPIO_PORT,LED_RED_GPIO_PIN)

/*宏定义函数，定义LED_GRE的亮灭*/
#define LED_GRE_OFF() GPIO_ResetBits(LED_GRE_GPIO_PORT,LED_GRE_GPIO_PIN)
#define LED_GRE_ON() GPIO_SetBits(LED_GRE_GPIO_PORT,LED_GRE_GPIO_PIN)

/*宏定义函数，定义LED_WHI的亮灭*/
#define LED_WHI_ON() GPIO_ResetBits(LED_WHI_GPIO_PORT,LED_WHI_GPIO_PIN)
#define LED_WHI_OFF() GPIO_SetBits(LED_WHI_GPIO_PORT,LED_WHI_GPIO_PIN)




/* 函数声明 */
void LED_GPIO_Config(void);

// LED任务处理函数
void LED_Task(void); 
// 设置指定LED的状态
void LED_Set(uint8_t led, uint8_t state); 
// 控制指定颜色LED以指定频率闪烁
void LED_Task_2(uint8_t led_clo, uint8_t freq);
// 非阻塞：独立控制某一个LED闪烁（0-5Hz，0为长亮），需在主循环中反复调用
void LED_Task_3(uint8_t led, uint8_t freq);
// 非阻塞式LED任务：选择目标LED(0~3)与频率0~5Hz（0为长亮）
void LED_Task_3(uint8_t led, uint8_t freq);

#endif
